/* 
 * File:   errors.h
 * Author: kedzior
 *
 * Created on 8 maj 2011, 18:39
 */

#ifndef ERRORS_H
#define	ERRORS_H

#ifdef	__cplusplus
extern "C" {
#endif

// 
#include "main_h.h"
#include "globals.h"
// 
    
// 
    void myprint_1str(char *);
// 
    
//   
#ifdef  NICE_LINE 
    #define MYPRINT_STR(str)        \
        int temp_fun=strlen(__func__),temp_str=strlen(str);     \
        int memstr=temp_fun>temp_str?temp_fun:temp_str; \
        char *line=(char *)calloc(memstr+2,1);      \
        memset(line,'*',memstr+2);  \
        myprint_1str(line);       \
        myprint_1str(__func__); \
        myprint_1str(str);       \
        myprint_1str(line);       \
        free(line);     \
        ATTENTION(free(str););
#else
    #define MYPRINT_STR(str)        \
        int VC=80; /* char line[80]; */ \
        char *line=calloc(VC,1);        \
        strncat(line,__func__,strlen(__func__)+strlen(line)<VC?strlen(__func__):VC-strlen(line));        \
        strncat(line," : ",strlen(" : ")+strlen(line)<VC?strlen(" : "):VC-strlen(line));      \
        strncat(line,str,strlen(str)+strlen(line)<VC?strlen(str):VC-strlen(line));        \
        myprint_1str(line);       \
        free(line);
#endif

#ifndef OUTLOG
#define OUTLOG          NULL
#endif

#define MYPRINT_STR_RET(str,ret)        \
{       \
MYPRINT_STR(str);       \
return ret;     \
}   
//

#ifdef	__cplusplus
}
#endif

#endif	/* ERRORS_H */
